package com.xu.pojo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/*@Component是用于创建对象的 相当于<bean id="student" class="com.xu.pojo.Student"/>*/
/*当不指定名称，由spring提供默认名称是:类名的首字母小写 即student*/
@Component("student")
public class Student {
    @Value(value = "李白")
    private String name;
    @Value("23")
    private int age;
    /*
     *引用类型使用Autowired
     *
     *1、@Autowired 还有一个属性 required，默认值为 true，表示当匹配失败后，会终止程序运
     *行。若将其值设置为 false，则匹配失败，将被忽略，未匹配的属性值为 null。
     *
     *2、需要在引用属性上使用注解@Autowired，该注解默认使用按类型自动装配 Bean 的方式。
     *用该注解完成属性注入时，类中无需 setter。当然，若属性有 setter，则也可将其加到 setter上
     *
     *3、需要在引用属性上联合使用注解@Autowired 与@Qualifier。@Qualifier 的 value 属性用
          于指定要匹配的 Bean 的 id 值。类中无需 set 方法，也可加到 set 方法上。
     */
    @Qualifier("mySchool")
    private School school;

    public Student() {
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", school=" + school +
                '}';
    }

    public Student(String name, int age, School school) {
        this.name = name;
        this.age = age;
        this.school = school;
    }

}
